﻿using Microsoft.Win32;
using MiniExcelLibs;
using System.Data;
using System.Windows;

namespace CSharpAllDemo.Excel
{
    public class MiniExcelDemo
    {
        public static void WriteExcel1()
        {
            // 创建 DataTable
            var table = new DataTable();
            table.Columns.Add("姓名");
            table.Columns.Add("年龄");
            table.Columns.Add("班级");
            // 添加数据
            table.Rows.Add("李雷", "18", "三年一班");
            table.Rows.Add("韩梅梅", "18", "三年一班");
            table.Rows.Add("李白", "18", "三年二班");
            table.Rows.Add("杜甫", "18", "三年二班");
            table.Rows.Add("白居易", "18", "三年二班");
            MiniExcel.SaveAs("C:\\Users\\Administrator\\Desktop\\temp\\学生1.xlsx", table);

        }
        public static void ReadExcel1()
        {

            // 读取 Excel 文件到 DataSet
            var sheet = MiniExcel.QueryAsDataTable("C:\\Users\\Administrator\\Desktop\\temp\\学生1.xlsx");
            foreach (DataRow row in sheet.Rows)
            {
                // 处理每一行
                System.Diagnostics.Debug.WriteLine(row[0]);
            }

        }

        //导出Excel
        public static void WriteExcel2()
        {
            // 创建一个包含数据的列表
            var data = new List<Student>
    {
        new() {Name= "李雷",Age= 20,ClassName= "三年二班" },
        new() { Name= "韩梅梅",Age=  18,ClassName=  "三年二班" },
        new() { Name= "李白", Age= 19, ClassName= "三年二班" }
    };

            // 指定要保存的文件名
            var saveFileDialog = new SaveFileDialog();
            saveFileDialog.Filter = "Excel Files|*.xlsx";
            if (saveFileDialog.ShowDialog() == true)
            {
                string filePath = saveFileDialog.FileName;

                // 写入数据到 Excel 文件
                MiniExcel.SaveAs(filePath, data);

                MessageBox.Show("数据已成功导出到 Excel 文件!");
            }
        }
        public static void ReadExcel2()
        {
            // IEnumerable
            var rows = MiniExcel.Query<Student>("C:\\Users\\Administrator\\Desktop\\temp\\学生Demo.xlsx");
            foreach (var row in rows)
            {
                //row 就是一个Student实体
                Console.WriteLine(row.Name);
            }
        }
    }
}
